﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace GIFT
{
    public partial class NuevoTipoCampo : Form
    {
        public NuevoTipoCampo(InterfazPrincipal padre)
        {
            Principal = padre;
            InitializeComponent();
        }

        //Sobrecarga del constructor
        public NuevoTipoCampo(InterfazPrincipal padre, String predeterminado)
        {
            Principal = padre;
            InitializeComponent();
            switch (predeterminado) 
            {
                case("Número"): TipoCampo.SelectedIndex=0;break;
                case("Binario"): TipoCampo.SelectedIndex=1;break;
                case("Incremental"): TipoCampo.SelectedIndex=2;break;
                case("Texto"): TipoCampo.SelectedIndex=3;break;
                case("FechaHora"): TipoCampo.SelectedIndex=4;break;
                case("Jerarquia"): TipoCampo.SelectedIndex=5;break;
                case("Lista"): TipoCampo.SelectedIndex = 6; break;   
            }
            
        }

        //Captura el evento de cerrar
        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        //Captura el evento de guardar
        private void button1_Click(object sender, EventArgs e)
        {
            if (TipoCampo.Text != "")
            {
                switch (TipoCampo.Text)
                {
                    case ("Número"):
                        //Crea la nueva pestana mandando el nombre y la descripcion
                        VentanaNumero nuevaNum = (VentanaNumero)Principal.GetControlInterfaz().abrirArchivoNuevo(NombreG.Text, DescripcionG.Text, "numero");
                        if (nuevaNum != null)//Si retorna null es porque ya existe este nombre
                        {
                            nuevaNum.TopLevel = false;
                            Principal.GetPanel().Controls.Add(nuevaNum);
                            nuevaNum.Show();
                            nuevaNum.seHicieronCambios(null, null);
                            Principal.habilitarCampos();
                            this.Close(); //Se cierra
                        }
                        else //Si el nombre es repetido
                        {
                            MessageBox.Show("El nombre ya existe!"); //Informa
                            NombreG.Text = "";      //Limpia los campos
                            DescripcionG.Text = "";
                        }
                        break;
                    case ("Binario"):
                        VentanaBinario nuevaBin = (VentanaBinario)Principal.GetControlInterfaz().abrirArchivoNuevo(NombreG.Text, DescripcionG.Text, "binario");
                        if (nuevaBin != null)
                        {
                            nuevaBin.TopLevel = false;
                            Principal.GetPanel().Controls.Add(nuevaBin);
                            nuevaBin.Show();
                            nuevaBin.seHicieronCambios(null, null);
                            Principal.habilitarCampos();
                            this.Close(); //Se cierra
                        }
                        else//si el nombre es repetido
                        {
                            MessageBox.Show("El nombre ya existe!");
                            NombreG.Text = "";//limpia los datos
                            DescripcionG.Text = "";
                        }
                        break;  
                    case ("Incremental"):
                        //Crea la nueva pestana mandando el nombre y la descripcion
                        VentanaIncremental nuevaIncr = (VentanaIncremental)Principal.GetControlInterfaz().abrirArchivoNuevo(NombreG.Text, DescripcionG.Text, "incremental");
                        if (nuevaIncr != null)//Si retorna null es porque ya existe este nombre
                        {
                            nuevaIncr.TopLevel = false;
                            Principal.GetPanel().Controls.Add(nuevaIncr);
                            nuevaIncr.Show();
                            nuevaIncr.seHicieronCambios(null, null);
                            Principal.habilitarCampos();
                            this.Close(); //Se cierra
                        }
                        else //Si el nombre es repetido
                        {
                            MessageBox.Show("El nombre ya existe!"); //Informa
                            NombreG.Text = "";      //Limpia los campos
                            DescripcionG.Text = "";
                        }
                        break;
                    case ("Texto"):
                        //Crea la nueva pestana mandando el nombre y la descripcion
                        VentanaTexto nuevoTexto = (VentanaTexto)Principal.GetControlInterfaz().abrirArchivoNuevo(NombreG.Text, DescripcionG.Text, "texto");
                        if (nuevoTexto != null)//Si retorna null es porque ya existe este nombre
                        {
                            nuevoTexto.TopLevel = false;
                            Principal.GetPanel().Controls.Add(nuevoTexto);
                            nuevoTexto.Show();
                            nuevoTexto.seHicieronCambios(null, null);
                            Principal.habilitarCampos();
                            this.Close(); //Se cierra
                        }
                        else //Si el nombre es repetido
                        {
                            MessageBox.Show("El nombre ya existe!"); //Informa
                            NombreG.Text = "";      //Limpia los campos
                            DescripcionG.Text = "";
                        }
                        break;
                    case ("FechaHora"):

                        break;
                    case ("Lista"):
                        VentanaLista nuevaLista = (VentanaLista)Principal.GetControlInterfaz().abrirArchivoNuevo(NombreG.Text, DescripcionG.Text, "lista");
                        if (nuevaLista != null)//Si retorna null es porque ya existe este nombre
                        {
                            nuevaLista.TopLevel = false;
                            Principal.GetPanel().Controls.Add(nuevaLista);
                            nuevaLista.Show();
                            TreeNode tnode = new TreeNode(NombreG.Text);
                            tnode.ContextMenuStrip = Principal.ClickDerechoArbolPrincipalNodoSecundario;
                            Principal.GetTreeView().Nodes[0].Nodes[0].Nodes[6].Nodes.Add(tnode);
                            this.Close(); //Se cierra
                        }
                        else //Si el nombre es repetido
                        {
                            MessageBox.Show("El nombre ya existe!"); //Informa
                            NombreG.Text = "";      //Limpia los campos
                            DescripcionG.Text = "";
                        }
                        break;
                    case ("Jerarquia"):
                        VentanaJerarquia nuevaJer = (VentanaJerarquia)Principal.GetControlInterfaz().abrirArchivoNuevo(NombreG.Text, DescripcionG.Text, "jerarquia");
                        if (nuevaJer != null)
                        {
                            nuevaJer.TopLevel = false;
                            Principal.GetPanel().Controls.Add(nuevaJer);
                            nuevaJer.Show();
                            TreeNode tnode = new TreeNode(NombreG.Text);
                            tnode.ContextMenuStrip = Principal.ClickDerechoArbolPrincipalNodoSecundario;
                            Principal.GetTreeView().Nodes[0].Nodes[0].Nodes[5].Nodes.Add(tnode);
                            this.Close(); //Se cierra
                        }
                        else//si el nombre es repetido
                        {
                            MessageBox.Show("El nombre ya existe!");
                            NombreG.Text = "";//limpia los datos
                            DescripcionG.Text = "";
                        }
                        break;
                }
            }
             
        }

    }//Fin de la clase
}
